﻿namespace BathroomLocator.Services.Infrastructure
{
	using System;
	using System.Collections.Generic;
	using System.Linq;
	using BathroomLocator.Services.Models;

	public interface IPushUserEndpointsRepository
	{
		IQueryable<PushUserEndpoint> PushUserEndpoints { get; }

		void AddUserEndpoint(string userName, Uri channelUri);

		void UpdateUserEndpoint(PushUserEndpoint pushUserEndpoint);

		void RemoveUserEndpoint(string userName, Uri channelUri);

		IEnumerable<string> GetAllUsers();

		IEnumerable<PushUserEndpoint> GetUsersByName(string userName);

		IEnumerable<PushUserEndpoint> GetUsersByNameAndEndpoint(string userName, Uri channelUri);
	}
}
